message(NOTICE "开始构建 mingw-w64-headers-module 模块")
# 检查构建目标是否存在
if(TARGET mingw-w64-${MINGW_W64_TAG})
    message(NOTICE "mingw-w64 模块已存在 mingw-w64-${MINGW_W64_TAG}")
 return()
endif()
# 检查生成的文件是否存在
existsInstallFiles(
    ${MODULE_STAMP}/mingw-w64/${MINGW_W64_TAG}
    ${MODULE_INSTALL_DIR}/mingw-w64/${MINGW_W64_TAG}
    mingw-w64-${MINGW_W64_TAG})

# 构建配置文件
set(MINGW_W64_CONFIGURE CACHE STRING "mingw-w64 configure" FORCE)
set(MINGW_W64_ENV CACHE STRING "mingw-w64 build command" FORCE)

# 构建 mingw-w64 库
ExternalProject_Add(
    mingw-w64-crt-${MINGW_W64_TAG}
    # 目录配置
    PREFIX         ${EXTERNAL_PROJECT_ROOT}                        # ✅ 显式设置 prefix 目录
    SOURCE_DIR     ${MODULE_SRC}/mingw-w64/${MINGW_W64_TAG}            # ✅ 显式设置 source 目录
    BINARY_DIR     ${MODULE_BUILD}/mingw-w64-crt/${MINGW_W64_TAG}          # ✅ 显式设置 build 目录
    INSTALL_DIR    ${MODULE_INSTALL_DIR}/mingw-w64/${MINGW_W64_TAG}    # ✅ 显式设置 install 目录
    STAMP_DIR      ${MODULE_STAMP}/mingw-w64-crt/${MINGW_W64_TAG}          # ✅ 显式设置 stamp 目录
    TMP_DIR        ${MODULE_TMP}/mingw-w64-crt/${MINGW_W64_TAG}            # ✅ 显式设置 tmp 目录
    DOWNLOAD_COMMAND
        COMMAND ${CMAKE_COMMAND}
            -DSOURCE_DIR=<SOURCE_DIR>
            -DGIT_REPOSITORY=${MINGW_W64_REPO}
            -DGIT_TAG=${MINGW_W64_TAG}
            -P ${__DIR}/utils/git.cmake

    CONFIGURE_COMMAND
        <SOURCE_DIR>/mingw-w64-crt/configure
            --prefix=<INSTALL_DIR>
            --with-sysroot=<INSTALL_DIR>
            --host=x86_64-w64-mingw32
            --build=x86_64-linux-gnu
            --target=x86_64-w64-mingw32
            --enable-sdk=all
            --enable-secure-api
            --with-pthread
            --with-default-msvcrt=ucrt
    # 构建命令
    BUILD_COMMAND
        make -j${NPROC}
    # 安装命令
    INSTALL_COMMAND
        COMMAND make install
    # ✅ 启用所有日志（调试必备）
    LOG_DOWNLOAD      OFF                           # 下载日志
    LOG_CONFIGURE     OFF                            # 配置日志
    LOG_BUILD         OFF                           # 构建日志
    LOG_INSTALL       OFF                           # 安装日志
    LOG_OUTPUT_ON_FAILURE ON                       # 失败时自动输出日志
   # 依赖目标 安装需要先安装 automake libtool autopoint
   DEPENDS
   STEP_TARGETS configure build install # 关键：添加 install 步骤
)

